package com.jdd.modules.parkcar.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jdd.modules.parkcar.entity.ParkCarMonthly;
import com.jdd.modules.parkmonthly.dto.MonthlyCardInfoDTO;

import java.util.List;

/**
 * @Description: 月租车信息
 * @Author: jdd
 * @Date:   2021-05-24
 * @Version: V1.0
 */
public interface IParkCarMonthlyService extends IService<ParkCarMonthly> {

    /***/
    IPage<MonthlyCardInfoDTO> monthlyCarInfoList(Page<MonthlyCardInfoDTO> page, QueryWrapper<MonthlyCardInfoDTO> queryWrapper);
    List<MonthlyCardInfoDTO> monthlyCarInfo(List<MonthlyCardInfoDTO> list,QueryWrapper<MonthlyCardInfoDTO> queryWrapper);

    List<String> monthlyCarInfoIds(QueryWrapper<ParkCarMonthly> queryWrapper);

    List<ParkCarMonthly> getByPackCodeParkCarMonthlyCount(List<String> plateNo);
    ParkCarMonthly findByPlateNo(String plateNo,String status);
    /**
     * 查询车辆在指定车场的所有月租车信息
     * @param parkCode 车场编号
     * @param plateNo 车牌号
     * @param status 月租车启用状态
     * @return 月租车列表
     * @date 2021-08-13
     * @author: liuyaowen
     * */
    List<ParkCarMonthly> getMonthlyListInPark(String parkCode, String plateNo, String status);

    void removeAllInfo();

    /** 查询车场下需要转卡的车辆 */
    List<String> getTemporaryCarList(String areaId, String plateNo,String parkNumber,String monthlyCardId);
    /**
     * 得到区域内的月租车信息
     * @param areaId 区域Id
     * @param plateNo 车牌号
     * @param licenseStatusY 月租车启用状态
     * @return 月租车信息列表
     * */
    List<ParkCarMonthly> getAreaMonthlyCarInfo(String areaId, String plateNo, String licenseStatusY);

    /**
     * 根据停车场编码，车牌号，启用状态获取该车辆的月租车信息
     * @param parkCode 停车场编码
     * @param plateNo   车牌号
     * @param licenseStatusY 启用状态
     * @return
     */
    List<ParkCarMonthly> getEntranceMonthlyInfo(String parkCode, String plateNo, String licenseStatusY);

    /**
     * 查询车辆在指定车场的所有月租车信息V3
     * @param parkCode 车场编号
     * @param plateNo 车牌号
     * @param status 月租车启用状态
     * @return 月租车列表
     * @date 2021-08-13
     * @author: liuyaowen
     * */
    List<ParkCarMonthly> getMonthlyListInParkV3(String parkCode,String plateNo,String status);

    List<ParkCarMonthly> getByPackCodeParkCarMonthlyCount(String parkCode,String[] plateNo);

    List<ParkCarMonthly> getAllMonthlyInfoByAreaIdAndMonthlyCardId(String monthlyCardId,String areaId);



}
